home *** CD-ROM | disk | FTP | other *** search
- Instructions for the use of
-
- FLEXI-BASE Current version 2.0 February 1990
-
- Flexi-base is a small (30K) but powerful database program. It originally
- came about because I feel there is a real shortage of database programs for
- the Amiga, and those that are around are virtually falling over themselves
- with complexity of use. These also prove to be rather expensive !
-
- Flexi-Base is simplicity to use. You are not tied to any particular layout
- of your data page or the order in which you enter the data thereon. To start
- using Flexi-Base you must set up a database specification, and the program
- Flexi-Config will help you to do just this. Click on it`s icon and a very
- simple CLI style window will open, you are asked the database`s name, how
- many fields in each record and what their names and lengths are. Then you
- are asked to position each on the data page with the mouse. The field will
- appear at the bottom of the screen and by passing the pointer over this, it
- will "stick" and move with the pointer. When it`s in the right place, one
- click will secure it there. Once this is done, the specification or
- configuration is stored and the program will exit. To use this new database,
- click on the Flexi-Base Icon and select the database`s name from the list
- of files given. The data page will be built up on screen and the first
- record (if there is one) will be displayed. If this is a new or empty
- database then you will automatically be placed in the Enter New Record mode,
- the only exit from this page is by the ESC key which may be pressed at any
- time while entering data. The "Yes, No, Cancel" dialogue boxes at the end
- of these data entry pages do not necessarily require the use of the mouse,
- you may click one of the three buttons but just stiking the initial key on
- the keyboard, I think this is a nice short cut.
-
- In normal use there are three menus. The Project, Record and Mailshot menus.
-
- The former controls the system functions of Flexi-Base and these are very
- few,Different Database which requests the user to select a different
- database to open (Never!), Kill a data base which kills the current database,
- and Quit which exits to the workbench, selecting cancel from the file
- requester also has the effect of quitting.
-
- The record menu has Ten options available at present and all but one have
- keyboard short cuts. The first two have the effect of stepping forwards or
- backwards through the database one record at a time unless you have a search
- profile active and then it will be stepping forwards and backwards through
- the records that match the search requirements.
-
- The next two options move the display to either the top or bottom of the
- database and cancel the stepping through of only the records that match the
- search profile.
-
- The search option allows you to enter a search profile with which to match
- any records in the database and display only these. For a search to take
- place you must fill out a data page but you are able to place one extra
- character before each field to inform Flexi-Base how the data you enter is
- to be matched with records on the database. There are eight special
- characters, these are:-
-
- = Is the Same as ...
- # Is NOT the Same as ...
-
- ^ Does Contain ...
- - Does NOT Contain ...
-
- > Comes after ... }
- < Comes before ... } Not implimented
- } on Version 1.01
- ? Does Contain ... or is blank }
- / Does NOT Contain ... or is blank }
-
- any other characters or blank is a wild card and no comparison will take
- place, e.g. anything goes. So if a profile had the entry of
-
- ^fred
-
- all records where "fred" appeared anywhere within that given field would
- be displayed (as long as no other field profile inhibited it). The
- comparisons are not case sensitive and so there are no constraints placed on
- you to know what is already in your database. As an example, suppose a
- simple record was given the profile:-
-
-
- Name:^smith Tel.:^01
-
- Address:-high street
- :#camden
- :=london
-
- This would instruct Flexi-Base to display all records where the name
- contains "smith" and the telephone number has an "01" in it but does not
- live in camden but does live in london. A record that would match this
- might be:-
-
- Name:John Smithson Tel.:01 123 1234
-
- Address:Station Road
- :Finchley
- :London
-
- And one that would not:-
-
- Name:Eric Smith Tel.:0895 12345
-
- Address:Station Road
- :Hillingdon
- :London
-
- by virtue of the fact that the `phone No. does not contain "01" even though
- all the other criteria are satisfied.
-
- Once a (group of) record(s) has been matched to the profile, the "Next
- record", Previous record" display options will only work on this group. To
- reset this to work on all records in the database, use the "First record",
- "Last record" options from the menu.
-
- The print option is exteremely simple at this stage, merely sending a stream
- to the printer as it is fetched from disc. No formatting takes place at the
- moment... (later Ver... 2.1?)
-
- The modify option is very similar to entering new data. The current record
- on display is stepped through and the fields may be altered at will. If the
- new data is ok the record will be stored, if not it may be re-entered or
- cancelled in which case the new data will be ignored and the old record will
- be re-displayed.
-
- The Enter New Records option has been discussed at the beginning of this
- document.
-
- About the Sort option see later...
-
- Deleting records, the current record will be deleted and the display
- adjusted accordingly. If the only record in a database is deleted you will
- automatically be placed in the data entry mode afterwards. No checks are
- made on the records you are about to delete so be careful !
-
- All records on Flexi-Base are completely RAM: based, that is the whole file
- is brought into ram and any operations occur there. This results in fairly
- fast activity but has several drawbacks. Firstly if you reset your Amiga or
- the power fails, Any changes you have made will not be stored but the
- program is fail safe in this respect, that is: no file is left open on disc
- so you will not get "File already open" alerts when it is obvious that it
- most definately is not but was not closed before the machine reset. The
- second aspect is that the file must be buffered before and after use. The
- file is copied in it`s entirety to RAM: and then copied back when finished
- with (if anything has changed). To prevent worrying periods of apparent
- inactivity, when any appreciable work is being done, there is a "Work done
- guage" which is displayed at the top of the screen. When buffering or
- unbuffering a database or when re-organising the database after a delete,
- the gauge is displayed and the level of work done will gradually step up to
- the 100% mark when Flexi-base will listen to you again.
-
- The sort routine is fairly good. I originally wrote it as a straight-
- forward bubble sort but with a database of 480 records each 179 bytes long
- it took over five hours (!!"?##?!) to sort. This was due mainly to two
- problems.
-
- 1. Bubble sorts are inherently slow.
-
- 2. All sorting was done using the filing system.
-
- Bubble sorts (stop laughing at the back) are good for two reasons
-
- 1. They always work !
-
- 2. They are easy to program (double !)
-
- I remember from college going into all sorts of different sort algorithms
- and remember a demonstration of a shell sort where data was arranged in
- absolute worst condition and it failed to sort correctly as well as being
- slower than a bubble sort. Moral: doctors should attend the sick and
- leave the.. (sh)ell alone... (don`t throw monitors, they break easily).
-
- So I set about exploring new methods of sorting and came up with something
- I call a "Pre-ordered Bubble Sort" someone`s probably thought of it before
- and called it something completely different. The thinking goes... Bubble
- sorts are great on small lumps of data. So to give Flexi-Base a head start,
- the database is scanned and all of a particular field starting with the same
- character are grouped together and then bubbled. Thus Flexi-Base will fragment
- the database and end up with, say, twenty small(ish) lumps of data, even
- the accursed AmigaDOS would be able to move small groups of records about
- with reasonable speed... And it worked!!, well, sort of. The problem comes in
- that if you have a big database with a lot of fields (the one you choose to
- sort by) all starting with the same character... you`re back to square one.
- Large lump of data + Bubble sort = go-and-watch-a-film-time. Another problem
- is that this lump of data, is not handled by AmigaDOS until it`s sorted that
- means that because I only gave Flexi-Base a measely 50K to play with, as
- workspace, if you have a 100K database with half the records with a given
- field all starting with the same letter/number/character, your going to have:
-
- 1. A long wait
-
- 2. A cross Amiga
-
- 3. Probably a program failure (not GURU don`t panic)
-
- Whichever, either you or your amiga will disappear up it`s own hole !
-
- The way to avoid this is three fold:
- a. Try to avoid sorting on fields that bear a startling similarity
- b. Use several smaller databases ( <40K )
- c. Don`t use the sort option, Flexi-base will use however much is free in
- RAM: maybe upto 8 or 9 Megs. On it`s own it`ll handle huge databases
-
- Now your probably thinking "Jesus, all those limitations, this bloke must
- be a pratt!" well on the latter part your probably right but... I use
- Flexi-base with a 340K database holding my work records and I don`t find
- any problem. It seems these limitations only rear their ugly heads if you
- go looking for em`. See what you think, if you don`t like it go and pay
- ninety quid for superbase, so there. (sniff)